package main

import "fmt"

//内存地址

func main() {
	fmt.Println("main函数执行")
	var a = 200
	fmt.Println(a, &a) //&a 来获取a的内存地址
	// %d整形 %p内存地址 %v代表使用类型的默认输出格式的标识符 %s代表字符串标识符
	//基本类型r1=r2 是指将r2地址的内容进行拷贝至r1地址中
	//如果是引用类型 r1=r2则是地址被拷贝

	//init函数 这是一类非常特殊的函数，它不能够被人为调用
	//而是在每个包完成初始化后自动执行，并且执行优先级比 main 函数高

	//匿名变量，有些方法返回的值我们不想要，我们可以使用_来接受并直接舍弃掉
	var b, _ int = test() //此时返回的200就被匿名变量接受并舍弃掉了
	fmt.Println(b)

	//变量交换
	a, b = b, a
	fmt.Println(a, b)

}

func init() {
	fmt.Println("init函数执行")
}

func test() (t1 int, t2 int) {
	return 100, 200
}
